"""
4. 切片的使用

题目：编写一个Python程序，随机生成20个由大小写字母、数字和下划线组成的字符组，并使用字符串、列表、集合和元组的方法打印出来。
对字符串和列表切片，用两种方式取出4-14位的字符。
提示：
    1. 使用random.randint()函数生成随机整数。
    2. 使用random.choice()函数从字符组中随机选择一个字符。
    3. 字符串切片：str[start:end]，列表切片：list[start:end]。
"""

# 随机生成20个字符（请补充完整代码）

import random
import string

# 生成20个随机字符
characters = string.ascii_letters + string.digits + '_'
random_chars = [random.choice(characters) for _ in range(20)]

# 打印字符串
random_string = ''.join(random_chars)
print("随机字符串:", random_string)

# 打印列表
print("随机字符列表:", random_chars)

# 打印集合
random_set = set(random_chars)
print("随机字符集合:", random_set)

# 打印元组
random_tuple = tuple(random_chars)
print("随机字符元组:", random_tuple)

# 字符串切片
print("字符串切片方式1:", random_string[4:14])
print("字符串切片方式2:", ''.join(random_chars[4:14]))

# 列表切片
print("列表切片方式1:", random_chars[4:14])
print("列表切片方式2:", list(random_string)[4:14])